#ifndef PLAYER_H
#define PLAYER_H
#include<string>
#include <vector>
#include"EnumType.h"
#include "ResourceSet.h"
#include "DevelopmentTray.h"
using namespace std;

class Player{
public:
	Player();								// default constructor
	Player(string theName, color theColor);	// constructor that take the name and the color of the player
	int getVictoryPoints();					// accessors
	int getNmbOfRoads();
	int getNmbOfSettlements();
	int getNmbOfCities();
	ResourceSet getResources();				// get all resource cards
	DevelopmentTray getDevelopments();		// get all development cards 
	DevelopmentTray getOnTableDevelopments();		// get all development cards 
	string getName();
	color getColor();
	void setVictoryPoints(int theNumber);	// mutators
	void setNmbOfRoads(int theNumber);
	void setNmbOfSettlements(int theNumber);
	void setNmbOfCities(int theNumber);
	void setResources(ResourceSet availableResources);
	void setDevelopments(int arrayIndex, int nmb);	// modify the number of development cards
	void setOnTableDevelopments(int arrayIndex, int nmb);	// modify the number of development cards on the table
	void printPlayer();						// print the attributes of the player
private:
	string playerName;				// the player's name
	color playerColor;				// the player's color
	int victoryPoints;				// number of victory points
	ResourceSet availableResources;	// the bag of player's resource cards
	DevelopmentTray availableDevelopments;
	DevelopmentTray onTableDevelopments;
	int nmbOfRoads;					// the number of available player's roads, not placed yet on the board
	int nmbOfSettlements;
	int nmbOfCities;
};
#endif